﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Grafo
{
    class Raw
    {
        public string nome { get; set; }
        public string[] elementos { get; set; }
        public bool visitado = false;
        
        public string[] getElementos(List<Raw> listaPrincipal)
        {
            List<string> el = new List<string>();

            foreach (Raw item in listaPrincipal)
            {
                foreach (string item2 in item.elementos)
                {
                    if (!el.Contains(item2))
                    {
                        el.Add(item2);
                    }
                    if (!el.Contains(item.nome))
                    {
                        el.Add(item.nome);
                    }
                }

            }

            return el.ToArray();
        }
        public TreeNode nos(List<Raw> listaPrincipal)
        { 
            int n = 0;
            TreeNode no = new TreeNode();
            for (int i = 0; i < listaPrincipal.Count; i++)
			{
                if (listaPrincipal[i].visitado == false)
                {
                      no.Nodes.Add(add(listaPrincipal[i], n));
                      listaPrincipal[i].visitado = true;
                }              
			}
            return no;
        }
        private TreeNode add(Raw raw, int nivel)
        { 

            TreeNode nw = new TreeNode(raw.nome);
            for (int i = 0; i < raw.elementos.Length; i++)
            {
                nw.Nodes.Add(raw.elementos[i]);
            }
            return nw;

        }
    }
}